package model.esporte;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import model.banco.ConexaoFactory;

public class EsporteDAO {

	public List<Esporte> todosEsportes() {
		Connection con = ConexaoFactory.getInstance().getConexao();
		List<Esporte> esportes = null;
		String sql = "select * from clube.esporte order by descricao";
		PreparedStatement statement = null;
		ResultSet result = null;
		try {
			statement = con.prepareStatement(sql);
			result = statement.executeQuery();
			while (result.next()) {

			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return esportes;
	}

	private Connection connection;

	public EsporteDAO() {
		connection = ConexaoFactory.getInstance().getConexao();
	}

	public void salvar(Esporte esporte) {
		String sql = "INSERT INTO clube.esporte (DESCRICAO) VALUES (?)";
		try {
			PreparedStatement statement = connection.prepareStatement(sql);
			statement.setString(1, esporte.getDescricao());
			statement.execute();
			statement.close();
			connection.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	public List<Esporte> pesquisar(String descricao) {
		String sql = "select * from clube.esporte where descricao like '%" + descricao + "%'";
		try {
			PreparedStatement statement = connection.prepareStatement(sql);

			ResultSet rs = statement.executeQuery();

			List<Esporte> produtos = new ArrayList<Esporte>();

			while (rs.next()) {
				Esporte produto = new Esporte();
				produto.setId(rs.getLong("id"));
				produto.setDescricao(rs.getString("descricao").trim());

				produtos.add(produto);
			}

			rs.close();
			statement.close();
			return produtos;

		} catch (SQLException e) {
			e.printStackTrace();
		}
		return null;
	}

	public void alterar(Esporte esporte) {
		String sql = "update clube.esporte set descricao=? where id=?";
		PreparedStatement statement = null;
		try {
			statement = connection.prepareStatement(sql);
			statement.setString(1, esporte.getDescricao());
			statement.setLong(2, esporte.getId());
			statement.execute();
			statement.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}

	}

}
